package com.ruoyi.system.service;

import java.util.Date;
import java.util.List;

import com.ruoyi.common.core.domain.entity.YxUserAndDeviceVo;
import com.ruoyi.system.domain.YxAppUsageRecord;
import org.apache.ibatis.annotations.Param;

/**
 * 应用使用记录Service接口
 * 
 * @author lingyu
 * @date 2024-03-05
 */
public interface IYxAppUsageRecordService 
{
    /**
     * 查询应用使用记录
     * 
     * @param id 应用使用记录主键
     * @return 应用使用记录
     */
    public YxAppUsageRecord selectYxAppUsageRecordById(Long id);

    /**
     * 查询应用使用记录列表
     * 
     * @param yxAppUsageRecord 应用使用记录
     * @return 应用使用记录集合
     */
    public List<YxAppUsageRecord> selectYxAppUsageRecordList(YxAppUsageRecord yxAppUsageRecord);

    /**
     * 查询应用使用记录列表
     *
     * @param yxAppUsageRecord 应用使用记录
     * @return 应用使用记录集合
     */
    public List<YxUserAndDeviceVo> selectYxAppUsageList(YxAppUsageRecord yxAppUsageRecord);

    /**
     * 查询一周应用使用记录列表
     *
     * @return 应用使用记录集合
     */
    public List<YxUserAndDeviceVo> selectYxAppUsageWeekList(@Param("deviceId") String deviceId,
                                                            @Param("startDate") Date startDate,
                                                            @Param("endDate") Date endDate
    );

    /**
     * 新增应用使用记录
     * 
     * @param yxAppUsageRecord 应用使用记录
     * @return 结果
     */
    public int insertYxAppUsageRecord(YxAppUsageRecord yxAppUsageRecord);

    /**
     * 新增应用使用记录
     *
     * @param yxAppUsageRecords 应用使用记录
     * @return 结果
     */
    public int insertYxAppUsageRecords(List<YxAppUsageRecord> yxAppUsageRecords);

    /**
     * 修改应用使用记录
     *
     * @param yxAppUsageRecords 应用使用记录
     * @return 结果
     */
    public int updateYxAppUsageRecords(List<YxAppUsageRecord> yxAppUsageRecords);

    /**
     * 修改应用使用记录
     * 
     * @param yxAppUsageRecord 应用使用记录
     * @return 结果
     */
    public int updateYxAppUsageRecord(YxAppUsageRecord yxAppUsageRecord);

    /**
     * 批量删除应用使用记录
     * 
     * @param ids 需要删除的应用使用记录主键集合
     * @return 结果
     */
    public int deleteYxAppUsageRecordByIds(Long[] ids);

    /**
     * 删除应用使用记录信息
     * 
     * @param id 应用使用记录主键
     * @return 结果
     */
    public int deleteYxAppUsageRecordById(Long id);
}
